<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: Select2DTool类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('class_select2_d_tool.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pub-static-attribs">静态 Public 属性</a> &#124;
<a href="#pri-methods">Private 成员函数</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="class_select2_d_tool-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">Select2DTool类 参考</div>  </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
类 Select2DTool 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_select2_d_tool.png" usemap="#Select2DTool_map" alt=""/>
  <map id="Select2DTool_map" name="Select2DTool_map">
<area href="class_tool_interface.html" title="the parent class of all the select and the transform tool classes" alt="ToolInterface" shape="rect" coords="0,0,87,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:aa71279e77353f647f4f04a434579fa0d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#aa71279e77353f647f4f04a434579fa0d">Select2DTool</a> (<a class="el" href="local_types_8h.html#ab119e5463fbd3af25e93c81bd306ae54">SelectionPtr</a> selection_ptr, <a class="el" href="local_types_8h.html#ab270fe8bf56ceef23c1c5fbe384c9430">CloudPtr</a> cloud_ptr)</td></tr>
<tr class="memdesc:aa71279e77353f647f4f04a434579fa0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor  <a href="class_select2_d_tool.html#aa71279e77353f647f4f04a434579fa0d">更多...</a><br /></td></tr>
<tr class="separator:aa71279e77353f647f4f04a434579fa0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94e18ab15d4c07268eeb29de734e875a"><td class="memItemLeft" align="right" valign="top"><a id="a94e18ab15d4c07268eeb29de734e875a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#a94e18ab15d4c07268eeb29de734e875a">~Select2DTool</a> ()</td></tr>
<tr class="memdesc:a94e18ab15d4c07268eeb29de734e875a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor <br /></td></tr>
<tr class="separator:a94e18ab15d4c07268eeb29de734e875a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91b1aa44938842835990f1b02fc905ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#a91b1aa44938842835990f1b02fc905ec">start</a> (int x, int y, <a class="el" href="local_types_8h.html#a3ecbdde19ccb48639e25359e09b9f2ff">BitMask</a> modifiers, <a class="el" href="local_types_8h.html#a3ecbdde19ccb48639e25359e09b9f2ff">BitMask</a> mouseButton)</td></tr>
<tr class="memdesc:a91b1aa44938842835990f1b02fc905ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the selection tool with the initial mouse screen coordinates and key modifiers. The passed coordinates are used for determining the coordinates of the upper left corner of the rubber band.  <a href="class_select2_d_tool.html#a91b1aa44938842835990f1b02fc905ec">更多...</a><br /></td></tr>
<tr class="separator:a91b1aa44938842835990f1b02fc905ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5571bbd1e8fb45f653019f58f9747851"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#a5571bbd1e8fb45f653019f58f9747851">update</a> (int x, int y, <a class="el" href="local_types_8h.html#a3ecbdde19ccb48639e25359e09b9f2ff">BitMask</a> modifiers, <a class="el" href="local_types_8h.html#a3ecbdde19ccb48639e25359e09b9f2ff">BitMask</a> mouseButton)</td></tr>
<tr class="memdesc:a5571bbd1e8fb45f653019f58f9747851"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the selection tool from the current mouse screen coordinates and key modifiers.  <a href="class_select2_d_tool.html#a5571bbd1e8fb45f653019f58f9747851">更多...</a><br /></td></tr>
<tr class="separator:a5571bbd1e8fb45f653019f58f9747851"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a955e733dc62c378307e4e1efba3555df"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#a955e733dc62c378307e4e1efba3555df">end</a> (int x, int y, <a class="el" href="local_types_8h.html#a3ecbdde19ccb48639e25359e09b9f2ff">BitMask</a> modifiers, <a class="el" href="local_types_8h.html#a3ecbdde19ccb48639e25359e09b9f2ff">BitMask</a> mouseButton)</td></tr>
<tr class="memdesc:a955e733dc62c378307e4e1efba3555df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the coordinates of the lower right corner of the rubber band and process the points in the rubber band.  <a href="class_select2_d_tool.html#a955e733dc62c378307e4e1efba3555df">更多...</a><br /></td></tr>
<tr class="separator:a955e733dc62c378307e4e1efba3555df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abece01db116325ecf8dfd0a86c9fa4c3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#abece01db116325ecf8dfd0a86c9fa4c3">isInSelectBox</a> (const <a class="el" href="local_types_8h.html#aa91692c8ec27c66986b1f88e3b35384b">Point3D</a> &amp;pt, const GLfloat *project, const GLint *viewport) const</td></tr>
<tr class="memdesc:abece01db116325ecf8dfd0a86c9fa4c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether a point is inside the selection region.  <a href="class_select2_d_tool.html#abece01db116325ecf8dfd0a86c9fa4c3">更多...</a><br /></td></tr>
<tr class="separator:abece01db116325ecf8dfd0a86c9fa4c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dd67f4e37275ba9f7c6da266a028256"><td class="memItemLeft" align="right" valign="top"><a id="a6dd67f4e37275ba9f7c6da266a028256"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#a6dd67f4e37275ba9f7c6da266a028256">draw</a> () const</td></tr>
<tr class="memdesc:a6dd67f4e37275ba9f7c6da266a028256"><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws the rubber band as well as any highlighted points during the 'update' phase (i.e. before the selection is made by a call to end). <br /></td></tr>
<tr class="separator:a6dd67f4e37275ba9f7c6da266a028256"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_tool_interface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_tool_interface')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="class_tool_interface.html">ToolInterface</a></td></tr>
<tr class="memitem:a6cbd00e85c2e49d19bf30ca06a0cf1ab inherit pub_methods_class_tool_interface"><td class="memItemLeft" align="right" valign="top"><a id="a6cbd00e85c2e49d19bf30ca06a0cf1ab"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tool_interface.html#a6cbd00e85c2e49d19bf30ca06a0cf1ab">~ToolInterface</a> ()</td></tr>
<tr class="memdesc:a6cbd00e85c2e49d19bf30ca06a0cf1ab inherit pub_methods_class_tool_interface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a6cbd00e85c2e49d19bf30ca06a0cf1ab inherit pub_methods_class_tool_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
静态 Public 属性</h2></td></tr>
<tr class="memitem:abad5e4692aa622b1c2075188bda38764"><td class="memItemLeft" align="right" valign="top"><a id="abad5e4692aa622b1c2075188bda38764"></a>
static const float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#abad5e4692aa622b1c2075188bda38764">DEFAULT_TOOL_DISPLAY_SIZE_</a></td></tr>
<tr class="memdesc:abad5e4692aa622b1c2075188bda38764"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default size in pixels of the rubberband tool outline <br /></td></tr>
<tr class="separator:abad5e4692aa622b1c2075188bda38764"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafc4b1637b4f3fd4950414fa789c683f"><td class="memItemLeft" align="right" valign="top"><a id="aafc4b1637b4f3fd4950414fa789c683f"></a>
static const float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#aafc4b1637b4f3fd4950414fa789c683f">DEFAULT_TOOL_DISPLAY_COLOR_RED_</a></td></tr>
<tr class="memdesc:aafc4b1637b4f3fd4950414fa789c683f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default color of the rubberband tool - red component <br /></td></tr>
<tr class="separator:aafc4b1637b4f3fd4950414fa789c683f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a914ce702a7e87cd9a236b28a3d5dfe31"><td class="memItemLeft" align="right" valign="top"><a id="a914ce702a7e87cd9a236b28a3d5dfe31"></a>
static const float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#a914ce702a7e87cd9a236b28a3d5dfe31">DEFAULT_TOOL_DISPLAY_COLOR_GREEN_</a></td></tr>
<tr class="memdesc:a914ce702a7e87cd9a236b28a3d5dfe31"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default color of the rubberband tool - green component <br /></td></tr>
<tr class="separator:a914ce702a7e87cd9a236b28a3d5dfe31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34397a52de029f0e7200cec1abf64867"><td class="memItemLeft" align="right" valign="top"><a id="a34397a52de029f0e7200cec1abf64867"></a>
static const float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#a34397a52de029f0e7200cec1abf64867">DEFAULT_TOOL_DISPLAY_COLOR_BLUE_</a></td></tr>
<tr class="memdesc:a34397a52de029f0e7200cec1abf64867"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default color of the rubberband tool - blue component <br /></td></tr>
<tr class="separator:a34397a52de029f0e7200cec1abf64867"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private 成员函数</h2></td></tr>
<tr class="memitem:a269c52953f12e01361cf2ec7ae2af604"><td class="memItemLeft" align="right" valign="top"><a id="a269c52953f12e01361cf2ec7ae2af604"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#a269c52953f12e01361cf2ec7ae2af604">Select2DTool</a> ()</td></tr>
<tr class="memdesc:a269c52953f12e01361cf2ec7ae2af604"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor - object is not default constructable <br /></td></tr>
<tr class="separator:a269c52953f12e01361cf2ec7ae2af604"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ca16f55f84ca0289ca9db4a00dac3ca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#a0ca16f55f84ca0289ca9db4a00dac3ca">drawRubberBand</a> (GLint *viewport) const</td></tr>
<tr class="memdesc:a0ca16f55f84ca0289ca9db4a00dac3ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">draw the 2D selection rubber band.  <a href="class_select2_d_tool.html#a0ca16f55f84ca0289ca9db4a00dac3ca">更多...</a><br /></td></tr>
<tr class="separator:a0ca16f55f84ca0289ca9db4a00dac3ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbf3a5f2ffd1ad38153b86b78a210354"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#acbf3a5f2ffd1ad38153b86b78a210354">highlightPoints</a> (GLint *viewport) const</td></tr>
<tr class="memdesc:acbf3a5f2ffd1ad38153b86b78a210354"><td class="mdescLeft">&#160;</td><td class="mdescRight">highlight all the points in the rubber band. @detail draw the cloud using a stencil buffer. During this time, the points that are highlighted will not be recorded by the selecion object.  <a href="class_select2_d_tool.html#acbf3a5f2ffd1ad38153b86b78a210354">更多...</a><br /></td></tr>
<tr class="separator:acbf3a5f2ffd1ad38153b86b78a210354"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:a1905ecb4f0c14bd68b4db97b377243a1"><td class="memItemLeft" align="right" valign="top"><a id="a1905ecb4f0c14bd68b4db97b377243a1"></a>
<a class="el" href="local_types_8h.html#ab119e5463fbd3af25e93c81bd306ae54">SelectionPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#a1905ecb4f0c14bd68b4db97b377243a1">selection_ptr_</a></td></tr>
<tr class="memdesc:a1905ecb4f0c14bd68b4db97b377243a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">a shared pointer pointing to the selection object <br /></td></tr>
<tr class="separator:a1905ecb4f0c14bd68b4db97b377243a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc64bb3d83208e8ae0199b6725e1135e"><td class="memItemLeft" align="right" valign="top"><a id="afc64bb3d83208e8ae0199b6725e1135e"></a>
<a class="el" href="local_types_8h.html#ab270fe8bf56ceef23c1c5fbe384c9430">CloudPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#afc64bb3d83208e8ae0199b6725e1135e">cloud_ptr_</a></td></tr>
<tr class="memdesc:afc64bb3d83208e8ae0199b6725e1135e"><td class="mdescLeft">&#160;</td><td class="mdescRight">a shared pointer pointing to the cloud object <br /></td></tr>
<tr class="separator:afc64bb3d83208e8ae0199b6725e1135e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0be4d51711856e69901cb19a1709e852"><td class="memItemLeft" align="right" valign="top"><a id="a0be4d51711856e69901cb19a1709e852"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#a0be4d51711856e69901cb19a1709e852">origin_x_</a></td></tr>
<tr class="memdesc:a0be4d51711856e69901cb19a1709e852"><td class="mdescLeft">&#160;</td><td class="mdescRight">the original mouse screen coordinates <br /></td></tr>
<tr class="separator:a0be4d51711856e69901cb19a1709e852"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a218914a262ea4b1f9a661f32208e23bf"><td class="memItemLeft" align="right" valign="top"><a id="a218914a262ea4b1f9a661f32208e23bf"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>origin_y_</b></td></tr>
<tr class="separator:a218914a262ea4b1f9a661f32208e23bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f8f409cc50f667af274aaeff389c86e"><td class="memItemLeft" align="right" valign="top"><a id="a4f8f409cc50f667af274aaeff389c86e"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#a4f8f409cc50f667af274aaeff389c86e">final_x_</a></td></tr>
<tr class="memdesc:a4f8f409cc50f667af274aaeff389c86e"><td class="mdescLeft">&#160;</td><td class="mdescRight">the final mouse screen coordinates <br /></td></tr>
<tr class="separator:a4f8f409cc50f667af274aaeff389c86e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9133a2793fd3056cd7754381e92785d7"><td class="memItemLeft" align="right" valign="top"><a id="a9133a2793fd3056cd7754381e92785d7"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>final_y_</b></td></tr>
<tr class="separator:a9133a2793fd3056cd7754381e92785d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9f8ac68a7533b0dc89ff55ea0b1a0a6"><td class="memItemLeft" align="right" valign="top"><a id="ad9f8ac68a7533b0dc89ff55ea0b1a0a6"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_select2_d_tool.html#ad9f8ac68a7533b0dc89ff55ea0b1a0a6">display_box_</a></td></tr>
<tr class="memdesc:ad9f8ac68a7533b0dc89ff55ea0b1a0a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">switch for selection box rendering <br /></td></tr>
<tr class="separator:ad9f8ac68a7533b0dc89ff55ea0b1a0a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
额外继承的成员函数</h2></td></tr>
<tr class="inherit_header pro_methods_class_tool_interface"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_tool_interface')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="class_tool_interface.html">ToolInterface</a></td></tr>
<tr class="memitem:a998b140ab5373f0fe15571e485eaadd7 inherit pro_methods_class_tool_interface"><td class="memItemLeft" align="right" valign="top"><a id="a998b140ab5373f0fe15571e485eaadd7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tool_interface.html#a998b140ab5373f0fe15571e485eaadd7">ToolInterface</a> ()</td></tr>
<tr class="memdesc:a998b140ab5373f0fe15571e485eaadd7 inherit pro_methods_class_tool_interface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor <br /></td></tr>
<tr class="separator:a998b140ab5373f0fe15571e485eaadd7 inherit pro_methods_class_tool_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">构造及析构函数说明</h2>
<a id="aa71279e77353f647f4f04a434579fa0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa71279e77353f647f4f04a434579fa0d">&#9670;&nbsp;</a></span>Select2DTool()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Select2DTool::Select2DTool </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="local_types_8h.html#ab119e5463fbd3af25e93c81bd306ae54">SelectionPtr</a>&#160;</td>
          <td class="paramname"><em>selection_ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="local_types_8h.html#ab270fe8bf56ceef23c1c5fbe384c9430">CloudPtr</a>&#160;</td>
          <td class="paramname"><em>cloud_ptr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">selection_ptr</td><td>a shared pointer pointing to the selection object. </td></tr>
    <tr><td class="paramname">cloud_ptr</td><td>a shared pointer pointing to the cloud object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="a0ca16f55f84ca0289ca9db4a00dac3ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ca16f55f84ca0289ca9db4a00dac3ca">&#9670;&nbsp;</a></span>drawRubberBand()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Select2DTool::drawRubberBand </td>
          <td>(</td>
          <td class="paramtype">GLint *&#160;</td>
          <td class="paramname"><em>viewport</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>draw the 2D selection rubber band. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">viewport</td><td>the viewport obtained from GL </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a955e733dc62c378307e4e1efba3555df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a955e733dc62c378307e4e1efba3555df">&#9670;&nbsp;</a></span>end()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Select2DTool::end </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="local_types_8h.html#a3ecbdde19ccb48639e25359e09b9f2ff">BitMask</a>&#160;</td>
          <td class="paramname"><em>modifiers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="local_types_8h.html#a3ecbdde19ccb48639e25359e09b9f2ff">BitMask</a>&#160;</td>
          <td class="paramname"><em>mouseButton</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Update the coordinates of the lower right corner of the rubber band and process the points in the rubber band. </p>
<p>The points which fall into the selection region are processed according to the value of the modifier: If shift is pressed, the selected points are appended to the existing selection. If ctrl is pressed, the points will be removed from the existing selection if they were elected previously, otherwise nothing happens. </p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>the x value of the mouse screen coordinates. </td></tr>
    <tr><td class="paramname">y</td><td>the y value of the mouse screen coordinates. </td></tr>
    <tr><td class="paramname">modifiers</td><td>the key modifier. </td></tr>
  </table>
  </dd>
</dl>

<p>实现了 <a class="el" href="class_tool_interface.html#a4fb40ef19c64340bf59b135fbe2df84a">ToolInterface</a>.</p>

</div>
</div>
<a id="acbf3a5f2ffd1ad38153b86b78a210354"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acbf3a5f2ffd1ad38153b86b78a210354">&#9670;&nbsp;</a></span>highlightPoints()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Select2DTool::highlightPoints </td>
          <td>(</td>
          <td class="paramtype">GLint *&#160;</td>
          <td class="paramname"><em>viewport</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>highlight all the points in the rubber band. @detail draw the cloud using a stencil buffer. During this time, the points that are highlighted will not be recorded by the selecion object. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">viewport</td><td>the viewport obtained from GL </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="abece01db116325ecf8dfd0a86c9fa4c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abece01db116325ecf8dfd0a86c9fa4c3">&#9670;&nbsp;</a></span>isInSelectBox()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Select2DTool::isInSelectBox </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="local_types_8h.html#aa91692c8ec27c66986b1f88e3b35384b">Point3D</a> &amp;&#160;</td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const GLfloat *&#160;</td>
          <td class="paramname"><em>project</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const GLint *&#160;</td>
          <td class="paramname"><em>viewport</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks whether a point is inside the selection region. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">pt</td><td>the point to be checked against the selection region. </td></tr>
    <tr><td class="paramname">project</td><td>the projection matrix obtained from GL. </td></tr>
    <tr><td class="paramname">viewport</td><td>the current viewport obtained from GL. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a91b1aa44938842835990f1b02fc905ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91b1aa44938842835990f1b02fc905ec">&#9670;&nbsp;</a></span>start()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Select2DTool::start </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="local_types_8h.html#a3ecbdde19ccb48639e25359e09b9f2ff">BitMask</a>&#160;</td>
          <td class="paramname"><em>modifiers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="local_types_8h.html#a3ecbdde19ccb48639e25359e09b9f2ff">BitMask</a>&#160;</td>
          <td class="paramname"><em>mouseButton</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Initializes the selection tool with the initial mouse screen coordinates and key modifiers. The passed coordinates are used for determining the coordinates of the upper left corner of the rubber band. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>the x value of the mouse screen coordinates. </td></tr>
    <tr><td class="paramname">y</td><td>the y value of the mouse screen coordinates. </td></tr>
    <tr><td class="paramname">modifiers</td><td>the key modifier. There are three possible values for modifiers: 1. shift key, 2. ctrl key, 3. no modifier is pressed. Note that the ctrl key may be evaluated as the command key in OSX. </td></tr>
  </table>
  </dd>
</dl>

<p>实现了 <a class="el" href="class_tool_interface.html#a5ede982d2daba0589ff7c1034feed76c">ToolInterface</a>.</p>

</div>
</div>
<a id="a5571bbd1e8fb45f653019f58f9747851"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5571bbd1e8fb45f653019f58f9747851">&#9670;&nbsp;</a></span>update()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Select2DTool::update </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="local_types_8h.html#a3ecbdde19ccb48639e25359e09b9f2ff">BitMask</a>&#160;</td>
          <td class="paramname"><em>modifiers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="local_types_8h.html#a3ecbdde19ccb48639e25359e09b9f2ff">BitMask</a>&#160;</td>
          <td class="paramname"><em>mouseButton</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Update the selection tool from the current mouse screen coordinates and key modifiers. </p>
<p>Creates a 2D rubberband. The coordinates of the lower right corner of the rubberband is computed from the passed coordinates. </p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>the x value of the mouse screen coordinates. </td></tr>
    <tr><td class="paramname">y</td><td>the y value of the mouse screen coordinates. </td></tr>
    <tr><td class="paramname">modifiers</td><td>the key modifier. </td></tr>
  </table>
  </dd>
</dl>

<p>实现了 <a class="el" href="class_tool_interface.html#ab93188bd97a99ede4370d1917d66e35a">ToolInterface</a>.</p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>apps/point_cloud_editor/include/pcl/apps/point_cloud_editor/<a class="el" href="select2_d_tool_8h_source.html">select2DTool.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="class_select2_d_tool.html">Select2DTool</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
